package com.fjec.market.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Map;

/**
 * <p>
 * 001.市场表
 * </p>
 *
 * @author admin
 * @since 2020-09-07
 */
@TableName(value = "info_market", autoResultMap = true)
@Data
public class InfoMarket implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键Id
     */
    @TableId("Id")
    private Long id;

    /**
     * 市场编码
     */
    @TableField("MarkCode")
    private Integer markCode;

    /**
     * 市场名称
     */
    @TableField("MarkName")
    private String markName;

    /**
     * 市场描述
     */
    @TableField("MarkDesc")
    private String markDesc;

    /**
     * 市场图片
     */
    @TableField(value = "MarkPics", typeHandler = JacksonTypeHandler.class)
    private Map<String, Object> markPics;

    /**
     * 是否可见
     */
    @TableField("Display")
    private Integer display;

    /**
     * 市场板块值 使用二进制每一位表示一个板块：
0x01=1=果农信息
0x02=10=水果分拣厂
0x04=100=水果包装厂
0x08=1000=农资物料厂
0x10=10000=水果采购商
0x20=100000=水果零售中心
保存时保存各板块值的和。
计算是使用按位与，结果不为0则有此板块。
     */
    @TableField("PlateValue")
    private Integer plateValue;

    /**
     * 位置经度
     */
    @TableField("Longitude")
    private BigDecimal longitude;

    /**
     * 位置纬度
     */
    @TableField("Latitude")
    private BigDecimal latitude;

    /**
     * 排序
     */
    @TableField("Sort")
    private Integer sort;

    /**
     * 板块排序 升序排列，用逗号分隔保存市场板块值，如果有值照此重新排序，如果为空则按照市场默认排序
     */
    @TableField("SectionSort")
    private String sectionSort;

    /**
     * 创建时间
     */
    @TableField("CreateTime")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField("UpdateTime")
    private LocalDateTime updateTime;


    @Override
    public String toString() {
        return "InfoMarket{" +
            "id=" + id +
            ", markCode=" + markCode +
            ", markName=" + markName +
            ", markDesc=" + markDesc +
            ", markPics=" + markPics +
            ", display=" + display +
            ", plateValue=" + plateValue +
            ", longitude=" + longitude +
            ", latitude=" + latitude +
            ", sort=" + sort +
            ", sectionSort=" + sectionSort +
            ", createTime=" + createTime +
            ", updateTime=" + updateTime +
        "}";
    }
}
